package com.hzhc.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 集装箱计费明细
 * </p>
 *
 * @author 功不唐捐
 * @since 2024-06-12
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("cntr_charge_detail")
public class CntrChargeDetail implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 委托id
     */
    private String ywOrderId;

    /**
     * 集装箱号
     */
    private String cntrNo;

    /**
     * 车号
     */
    private String truckNo;

    /**
     * 货名
     */
    private String goodsName;

    /**
     * 箱型
     */
    private String cntrType;

    /**
     * 箱尺寸
     */
    private String cntrSize;

    /**
     * 空重标志( E：空，F：重）
     */
    private String efFlag;

    /**
     * 提单号
     */
    private String billNo;

    /**
     * 理货时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime tallyTime;

    /**
     * 客户id
     */
    private Integer companyId;

    /**
     * 客户名称
     */
    private String companyName;

    /**
     * 内外贸
     */
    private String tradeType;

    /**
     * 作业名称
     */
    private String orderTypeName;

    /**
     * 操作过程
     */
    private String workTypeName;

    /**
     * 货名
     */
    private String goods;

    /**
     * 原产地
     */
    private String sourceArea;

    /**
     * 货值
     */
    private String goodsVlue;

    /**
     * 报关单号
     */
    private String ciqNo;

    /**
     * 作业项id
     */
    private Integer workItemId;

    /**
     * 作业项名称
     */
    private String workItemName;

    /**
     * 计费项目id
     */
    private Integer chargeItemId;

    /**
     * 计费项目名称
     */
    private String chargeItemName;

    /**
     * 计费类型
     */
    private String chargeType;

    /**
     * 计算费用
     */
    private String price;

    /**
     * 受理时间
     */
    private String acceptTime;

    /**
     * 掏箱量
     */
    private String unloadingVolume;

    /**
     * 创建时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime createTime;

    /**
     * 修改时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime updateTime;

    /**
     * 是否删除
     */
    private Integer disable;

    /**
     * 创建人
     */
    private Integer userId;

    /**
     * 备注
     */
    private String remark;

    /**
     * 计费月份
     */
    private String chargeYearMonth;

    /**
     * 计费月份查询用
     */
    private String chargeYearMonthQuery;

    /**
     * 结算状态 (0未结算  1已结算)
     */
    private Integer settlementState;

    /**
     * 结算用户id
     */
    private Integer settlementUserId;

    /**
     * 结算人姓名
     */
    private String settlementUserName;

    /**
     * 结算时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime settlementTime;

    /**
     * 堆存天数
     */
    private String dayNum;

    /**
     * 费用账单id
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Integer chargeBillId;

    /**
     * 确认状态
     */
    private Integer confirmState;

    /**
     * 入园时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime inTime;

    /**
     * 委托号
     */
    private String orderNo;


}
